#define  _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<vector>
#include<string>
using namespace std;
//string solve(string s, string t) {
//    string ret;
//    int sz1 = s.size();
//    int sz2 = t.size();
//    reverse(s.begin(), s.end());
//    reverse(t.begin(), t.end());
//    for (int i = 0; i < min(sz1, sz2); i++)
//    {
//        ret += s[i] + t[i] - 96;
//    }
//    if (sz1 < sz2)
//    {
//        for (int i = sz1; i < sz2; i++)
//            ret += t[i] - 48;
//    }
//    else if (sz1 > sz2)
//    {
//        for (int i = sz2; i < sz1; i++)
//            ret += s[i] - 48;
//    }
//    ret += (char)0;
//    for (int i = 0; i < ret.size(); i++)
//    {
//        
//        if (ret[i] >= 10)
//        {
//            ret[i + 1] += ret[i] / 10;
//            
//        }
//        ret[i] = ret[i] % 10 + 48;
//    }
//    if (ret[ret.size() - 1] > 48)
//    {
//        ret[ret.size() - 1] += 48;
//    }
//    else
//        ret.pop_back();
//    reverse(ret.begin(), ret.end());
//    return ret;
//}
//
//int main()
//{
//    string s1 = "114514";
//    string s2 = "";
//    cout << solve(s1, s2);
//    return 0;
//}

struct ListNode {
    int val;
    struct ListNode* next;
    ListNode(int x) : val(x), next(nullptr) {}
    
};
ListNode* addInList(ListNode* head1, ListNode* head2) {
    // write code here
    ListNode* ret = new ListNode(0);
    int x;
    vector<int> a1;
    vector<int> a2;
    while (head1)
    {
        a1.push_back(head1->val);
        head1 = head1->next;
    }
    while (head2)
    {
        a2.push_back(head2->val);
        head2 = head2->next;
    }
    reverse(a1.begin(), a1.end());
    reverse(a2.begin(), a2.end());
    a1.resize(max(a1.size(), a2.size()));
    a2.resize(max(a1.size(), a2.size()));
    for (int i = 0; i < a1.size(); i++)
    {
        x = x + (a1[i] + a2[i]) * pow(10, i);

    }
    string s = to_string(x);
    ListNode* h = ret;
    for (int i = 0; i < s.size(); i++)
    {
        if (i == 0)
        {
            h->val = s[i];

        }
        h->next = new ListNode(s[i] - 48);
        h = h->next;



    }
    return ret;
}
int main()
{
    return 0;
}